<?php
session_start();
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class member extends CI_Controller {
    private $page;
    public function __construct() {
        parent::__construct();
        $user_data = $this->session->all_userdata();
        if (isset($user_data["logged_in"]) && $user_data["logged_in"] == TRUE) {
            $this->page["header"] = $this->load->view("part/header_login", '', true);
        } else {
            $this->page["header"] = $this->load->view("part/header_no_login", '', true);
        }
    }

    public function index() {
        $page = $this->page;
        $user_data = $this->session->all_userdata();
        if (!isset($user_data["logged_in"]) || $user_data["logged_in"] == FALSE) {
            $page["message"]["error"] = "Bạn không có quyền truy cập trang này.";
            $page["content"] = "";
        } else {
            $data["member"] = $user_data;
            $page["content"] = $this->load->view("page/member/index", $data, true);
        }
        $this->load->view("layout", $page);
    }

    /**
     * Action   :profile
     * Purpose  :View profile of member which has #id
     * Date     :
     * Author   :
     */
    public function profile() {
        
    }

    /**
     * Action   :login 
     * Purpose  :Check #username and #password to authorize member
     * Date     :
     * Author   :
     */
    public function login() {
        $page = $this->page;
        $email = $this->input->post("user_email");
        $pass = $this->input->post("user_login");
        if (isset($_SESSION['user_id']) && isset($_SESSION['user_fullname']) && isset($_SESSION['user_email']))
            $data['message']['error'] = 'Xin thoát tài khoản hiện tại!';

        else {
            if ($email == FALSE || $pass == FALSE)
                $data['message']['error'] = 'Thông tin lỗi! Xin đăng nhập lại.';
            else {
                $this->load->model("member_model");
                $data['user'] = $this->member_model->getLogin($email, $pass);
//            print_r($data['user']);
                if ($data['user'] == NULL)
                    $data['message']['info'] = 'Sai email hoặc mật khẩu đăng nhập!';
                else {
                    $member_data = array(
                        'fullname' => $data['user'][0]['fullname'],
                        'member_id'  => $data['user'][0]['id'],
                        'email'     => $data['user'][0]['email'],
                        'logged_in' => TRUE
                    );
                    $this->session->set_userdata($member_data);
                    $data['message']['success'] = $data['user'][0]['fullname'] . ' đã đăng nhập thành công';
                }
            }
        }
        $page['content'] = $this->load->view("page/member/login", $data, true);
        $this->load->view("layout", $page);
        redirect('member/index');
    }
    
    private function check_email_address($email) {
        //(PHP 5 >= 5.2.0)
        return filter_var($email, FILTER_VALIDATE_EMAIL);
    }



    /**
     * Action   : register
     * Purpose  : Show the registry form for user
     * Date     : 
     * Author   : Pham Truong
     */
    public function register() {
        $page = $this->page;
        $user_data = $this->session->all_userdata();
        if (isset($user_data["logged_in"]) && $user_data["logged_in"] == TRUE) {
            redirect('member/index');
        } else {
            $page["content"] = $this->load->view("page/member/register", '', true);
            $submitted = $this->input->post("mySubmit");
            if (!$submitted) {
                $page['message'] = NULL;
            } else {                
                $fullname   = $this->input->post('fullname');
                $email      = $this->input->post("email");
                $pass       = $this->input->post("pass");
                $repass     = $this->input->post("repass");
                
                if ($fullname == false) {
                    $page['message']['error'] = "Bạn chưa nhập tên!";
                } elseif ($email == false) {
                    $page['message']['error'] = "Bạn chưa nhập email";
                } elseif ($pass == FALSE) {
                    $page['message']['error'] = "Bạn chưa nhập mật khẩu";
                } else {
                    //Check valid email
                    if (!$this->check_email_address($email)) {
                        $page['message']['error'] = "Định dạng email không hợp lệ. Bạn vui lòng kiểm tra lại email!";
                    }
                    //Check valid password and confirm password
                    elseif ($pass != $repass) {
                        $page['message']['error'] = "Mật khẩu và Mật khẩu xác nhận chưa khớp";
                    } else  {
                        $this->load->model("member_model");
                        $result = $this->member_model->addmember($fullname, $email, $pass);
                        if ($result > 0) {
                            $page['message']['success'] = 'Bạn đã đăng ký thành công';
                            $page["content"] = '';
                        } elseif ($result == -1)
                            $page['message']['error'] = 'Email bạn sử dụng đã được đăng ký trên website';
                        else
                            $page['message']['error'] = 'Quá trình đăng ký đã xảy ra lỗi';
                    }
                }
            }
            $this->load->view("layout", $page);
        }
    }

    public function logout() {
        $this->session->sess_destroy();
        redirect('home');
    }
}

/* End of file member.php */
/* Location: ./application/controllers/member.php */